package cn.yh.shop.user.action;

import java.io.IOException;
import java.io.PrintWriter;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.apache.struts2.ServletActionContext;
import org.springframework.beans.factory.annotation.Autowired;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import cn.yh.shop.user.model.User;
import cn.yh.shop.user.service.IUserService;

/**
 * .
 * @Description:用户控制层
 * @author:仇文文
 * @time:2016年12月15日 上午9:12:44
 */
public class UserAction extends ActionSupport implements ModelDriven<Object> {
	private static Logger logger = LogManager.getLogger(UserAction.class);
	// 日志
	/**
	 * @Description: serialVersionUID : 序列化
	 */
	private static final long serialVersionUID = 1L;
	/**
	 * @Description: userService : 自动注入userService
	 */
	@Autowired
	private IUserService userService;
	
	/**
	 * @Description: User对象
	 */
	private User user;

	public void setUser(User user) {
		this.user = user;
	}
	@Override
	public Object getModel() {
		// TODO Auto-generated method stub
		if (user == null) {
			user = new User();
		}
		return user;
	}
	/**
	 * @Description:用户登陆
	 * void
	 * @exception:
	 * @author: 仇文文
	 * @time:2016年12月21日 下午2:42:14
	 */
	public void getUserByName() {
		logger.info("登陆用户");
		try {
			PrintWriter out = ServletActionContext.getResponse().getWriter();
			JSONObject jo = new JSONObject();
			user = userService.getUser(user);
			ActionContext.getContext().getSession().put("data", user);
			out.print(JSON.toJSONString(jo));
			out.flush();
			out.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	/**
	 * .
	 * 
	 * @Description:注册用户
	 * @return String
	 * @exception:
	 * @author: 仇文文
	 * @time:2016年12月15日 上午9:15:22
	 */
	public String registUser() {
		logger.info("注册用户");
	//		PrintWriter out = ServletActionContext.getResponse().getWriter();
		//	JSONObject jo = new JSONObject();
			userService.addUser(user);
			logger.info("用户名称："+user.getName());
			ActionContext.getContext().getSession().put("data", user);
			logger.info(user.getName());

		return "success";
	}
	
	/**.
	 * @Description:注册后显示用户
	 * @return
	 * String
	 * @exception:
	 * @author: 仇文文
	 * @time:2016年12月19日 下午1:44:20
	 */
	public String showUser() {
		logger.info("显示用户信息");
		User users=(User)ActionContext.getContext().getSession().get("data");
		//获取session的数据
		JSONObject jo = new JSONObject();
		jo.put("data", users);
		//返回json对象
		return "success";
	}
	/**
	 * .
	 * 
	 * @Description:编辑个人信息
	 * @return String
	 * @exception:
	 * @author: 仇文文
	 * @time:2016年12月15日 下午4:43:00
	 */
	public String editUser() {
		logger.info("编辑个人信息");
		//User users=(User) ServletActionContext.getRequest().getSession().getAttribute("data");
	//	User users=(User)ActionContext.getContext().getSession().get("data");
		userService.editUser(user);
		JSONObject jo = new JSONObject();
		jo.put("data", user);
		return "success";

	}

}
